Bluetooth Low Energy (Bluetooth LE, BLE, Bluetooth Smart) is a wireless personal area network technology developed for short-range control and monitoring applications, for example, in the healthcare, fitness, beacons, security, and home entertainment industries. BLE is capable of providing considerably reduced power consumption and cost while maintaining a similar communication range compared to classic or traditional Bluetooth communication.
The Bluetooth Core 4.0 specification defines the physical and logical layer requirements for BLE devices. These include the Physical Layer, the Link Layer, the Logical Link Control and Adaptation Protocol (L2CAP), the Security Manager (SM) and Security Manager Protocol (SMP), the Attribute Protocol (ATT), and the Generic Attribute Profile (GAP). The Bluetooth Core 4.0 specification also describes, for example, the behaviors and methods for device discovery, connection establishment, security, authentication, association models, and service discovery.
At the physical layer, BLE employs two multiple access schemes: frequency division multiple access (FDMA) and time division multiple access (TDMA). Forty radio frequency (RF) channels in the physical layer and having a channel spacing of 2 MHz are used in the FDMA scheme. In the time domain, a TDMA-based polling scheme is used in which the master (central) device transmits a packet at a predetermined time and the corresponding slave (peripheral) device responds with a packet after a fixed interval.
In order for bidirectional data communication between two BLE devices to occur, the devices must connect to each other. At the link layer, an asymmetric procedure is employed for the creation of such a connection. In particular, an advertiser device announces through the advertising channels that it is a connectable device, and the other device (i.e., the initiator device) listens for those advertisements. When an initiator finds an advertiser, it may transmit a Connection Request message to the advertiser, which creates a point-to-point connection between the two devices. Both devices can then communicate by using the physical data channels.
BLE defines two device roles at the link layer for a created connection: the master and the slave. These are the devices that act as initiator and advertiser during the connection creation, respectively. As called out by Bluetooth Core Specification v4.1, a master can manage multiple simultaneous connections with different slaves, whereas each slave can only be connected to one master. Thus, the network composed by a master and its slaves follows a star topology and is frequently referred to as a “piconet.”
In order to save energy, slave devices are in sleep mode by default and wake up periodically to listen for possible packet receptions from the master. The master device determines the instances in which slaves are required to listen, and thus coordinates the medium access by using a Time Division Multiple Access (TDMA) scheme. The master device also provides the corresponding slave device with the information needed for the frequency hopping algorithm (including the map of data channels to be used) and for the connection supervision. The parameters related with the management of a connection are transmitted in the Connection Request message and can be updated during the connection for various reasons.
Once a connection between a master device and a slave device is created, the physical channel is divided into non-overlapping time units called connection events. Every connection event starts with the transmission of a packet by the master device. If the slave device receives a packet, the slave device must send a packet to the master device in response. At least one Inter Frame Space (IFS) of 150 μs must pass between the end of the transmission of a packet and the start of the next one. While the master and slave continue to alternate in sending packets, the connection event is considered to be open. Data channel packets include a More Data (MD) bit which signals whether the sender has more information to transmit. If none of the devices has more data to transmit, the connection event will be closed and the slave will not be required to listen until the beginning of the next connection event. Other circumstances can force the end of a connection event, such as the reception of two consecutive packets with bit errors by either the master or the slave.
The time between the start of two consecutive connection events is specified by the Connection Interval parameter, which is a multiple of 1.25 ms in the range between 7.5 ms and 4 s. Another important parameter is the Connection Slave Latency, which defines the number of consecutive connection events during which the slave is not required to listen to the master and thus can keep the radio turned off. This parameter is an integer chosen between 0 and 499 and should not cause a supervision timeout. A supervision timeout happens when the time since the last received packet exceeds the Connection Supervision Timeout parameter, which is in the range between 100 ms and 32 s. The purpose of this mechanism is to detect the loss of a connection due to severe interference or the movement of a device outside the range of its peer.
The Attribute Protocol (ATT) layer defines the communication between two devices playing the roles of server and client, respectively, on top of a dedicated L2CAP channel. The server maintains a set of attributes. An attribute is a data structure that stores the information managed by the GATT, the protocol that operates on top of the ATT. The client or server role is determined by the GATT, and is independent of the slave or master role.
The client can access the server's attributes by sending requests, which trigger response messages from the server. For greater efficiency, a server can also send two types of unsolicited messages, which contain attributes, to a client: (i) notifications, which are unconfirmed; and (ii) indications, which require the client to send a confirmation. A client may also send commands to the server in order to write attribute values. Request/response and indication/confirmation transactions follow a stop-and-wait scheme.
Although BLE communications are generally reliable with one or two simultaneous slave connections, long-term reliability with a large number (e.g., ten or more) of simultaneous and active slave connections is a significant challenge. Ten active connections involves the master radio fairly scheduling ten connection event anchor points per connection interval and to limit each connection event within the interval so that all connections are serviced fairly. However, the Bluetooth Core specification does not address radio scheduling requirements, instead leaving the implementation up to each silicon vendor. As such, the typical result is increasingly unreliable operation as the number of active simultaneous connections increase to the maximum limit of the radio hardware and firmware.